using System.ComponentModel.DataAnnotations;
using System.Runtime.Serialization;

namespace FU.Capstones.IMS.Web.Common.InventoryServiceProxy.DataContracts
{
    [DataContract(Namespace = WebConstants.ServiceNamespace)]
    public class Contact : BindingModelBase<Contact>
    {
        public Contact()
        {
            AddAllAttributeValidators();
        }

        private int contactID;
        [DataMember]
        [Key]
        public int ContactID
        {
            get { return contactID; }
            set
            {
                if (!Equals(contactID,value))
                {
                    contactID = value;
                    RaisePropertyChanged(() => ContactID);
                }
            }
        }

        private string fullName;
        [DataMember]
        [Required(AllowEmptyStrings = false, ErrorMessage = ("Họ và tên không được bỏ trống"))]
        [StringLength(50, ErrorMessage = "Họ và tên không dài quá 50 kí tự.")]
        public string FullName
        {
            get { return fullName; }
            set
            {
                if(!ReferenceEquals(fullName, value))
                {
                    fullName = value;
                    RaisePropertyChanged(() => FullName);
                }
            }
        }

        private string mobilePhone;
        [DataMember]
        [Required(AllowEmptyStrings = false, ErrorMessage = ("Số di động không được bỏ trống"))]
        [StringLength(20, ErrorMessage = "Số di động không dài quá 20 kí tự.")]
        public string MobilePhone
        {
            get { return mobilePhone; }
            set
            {
                if(!ReferenceEquals(mobilePhone,value))
                {
                    mobilePhone = value;
                    RaisePropertyChanged(() => MobilePhone);
                }
            }
        }

        private int partnerID;
        [DataMember]
        public int PartnerID
        {
            get { return partnerID; }
            set
            {
                if (!Equals(partnerID, value))
                {
                    partnerID = value;
                    RaisePropertyChanged(() => PartnerID);
                }
            }
        }

        private bool isDelete;
        [DataMember]
        public bool IsDelete
        {
            get { return isDelete; }
            set
            {
                if (!Equals(isDelete, value))
                {
                    isDelete = value;
                    RaisePropertyChanged(() => IsDelete);
                }
            }
        }
    }
}
